<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>IIFE</title>
	</head>
	<body>
		<!-- 1.理解
		  全称: Immediately-Invoked Function Expression
		2.作用
		  隐藏实现
		  不会污染外部(全局)命名空间
		  用它来编码js模块 -->
		
		<script type="text/javascript">
			(function(){//匿名函数自调用
				var a = 3
				console.log(a + 3)
			})()
			var a = 4
			console.log(a)
			
			;(function (){
				var a = 1
				function test(){
					console.log(++a)
				}
				window.$ = function (){ //向外暴露一个全局函数
					return {
						test: test
					}
				}
			})()
			
			$().test() //1.$是一个函数  2.$执行后返回的是一个对象
			
		</script>		
	</body>
</html>
